内容简介:相比于 Windows 上的 Powershell 命令,Linux 命令更加简洁易用,能够有效提高开发效率,有时候还需要完全真实的 Linux 环境做测试,毕竟一般服务器都是用 Linux 系统的。目前桌面版的 Linux 发行版系统如 Ubuntu、Deepin 等都Mac 太贵,所以我只能用 Windows 了。
相比于 Windows 上的 Powershell 命令,Linux 命令更加简洁易用,能够有效提高开发效率,有时候还需要完全真实的 Linux 环境做测试,毕竟一般服务器都是用 Linux 系统的。
目前桌面版的 Linux 发行版系统如 Ubuntu、Deepin 等都 对开发 工具 都有很好的支持 。但是对于国内的环境来说,软件生态还是相当匮乏,除了写代码,想干点别的,相当困难。更重要的是 所有的 Linux 发行版对多桌面的支持都非常差,对触摸板的多指操作的支持也非常差,这是不能忍受的 ,所以还是只拿 Linux 当服务器用吧。
Mac 太贵,所以我只能用 Windows 了。
Windows 其实是可以打造出一套体验非常良好的 Linux 环境的,至少在我的使用过程中是要 比单独安装 Linux 桌面版系统要好 。
我的 Linux 终端方案
在我写这篇文章的时候,我已经试过非常多在 Windows 上使用 Linux 终端的方式了,并且还用过很长时间,最终我选择了 Git Bash + Hyper-V + Linux 这种方案。
- Git Bash 由 Windows 版的 Git 自带,启动速度快,内存占用少,自带大部分 Linux 命令,可通过配置文件更改外观,采用 Linux 文件系统,支持 alias。稍稍莫改一下,再添加几个 alias,它就是日常使用体验非常好的终端。
- Hyper-V 是 Windows 从 win8 开始就自带的虚拟机,用来安装服务器版 Linux,性能可以媲美 VMware,而内存占用则远远优于 VMware,并且支持用 Powershell 命令操作虚拟机。Powershell 命令虽然比较难记,但是可以借助 alias 设置别名来使用,非常方方便。
同样的,我列举几个不好的方案:
- WSL ,磁盘 IO 性能极差,并且没有真实内核,无法运行 docker 等 Linux 应用。
- Cmder 没有 Linux 文件系统,切换磁盘繁琐且经常失败,窗口上的多余部件过多,启动不够快。
- VMware ,内存占用高,不使用时后台服务多,不支持用命令控制虚拟机。
美化 Git Bash
在用户根目录下新建一个名为 .minttyrc
的文件,写入以下内容,然后重启 git bash,就能看到美化后的样子了。
下面配置中第一部分是窗口的基本配置,包括大小、透明度、字体等,第二部分是窗口颜色,第三部分是目录和文件的配色,都可以随意修改。
$ cd ~ $ touch .minttyrc $ vi .minttyrc 复制代码
FontHeight=16 Font=Consolas Transparency=low FontSmoothing=full Locale=zh_CN Charset=GBK Columns=88 Rows=26 OpaqueWhenFocused=no Scrollbar=none Language=zh_CN ForegroundColour=131,148,150 BackgroundColour=0,43,54 CursorColour=220,130,71 BoldBlack=128,128,128 Red=255,64,40 BoldRed=255,128,64 Green=64,200,64 BoldGreen=64,255,64 Yellow=190,190,0 BoldYellow=255,255,64 Blue=0,128,255 BoldBlue=128,160,255 Magenta=211,54,130 BoldMagenta=255,128,255 Cyan=64,190,190 BoldCyan=128,255,255 White=200,200,200 BoldWhite=255,255,255 复制代码
仅仅是换了一个主题还不够,还需要更改终端提示符,更改 git 安装目录下 etc 目录里面的一个文件即可,这个文件也可以通过绝对路径访问到。
$ vi /etc/profile.d/git-prompt.sh 复制代码
if test -f /etc/profile.d/git-sdk.sh then TITLEPREFIX=SDK-${MSYSTEM#MINGW} else TITLEPREFIX=$MSYSTEM fi if test -f ~/.config/git/git-prompt.sh then . ~/.config/git/git-prompt.sh else PS1='\[\033]0;Bash In $PWD\007\]' # 窗口标题 PS1="$PS1"'\n' # 换行 PS1="$PS1"'\[\033[32m\]' # 绿色 PS1="$PS1"'\u ' # 用户名 PS1="$PS1"'\[\033[0m\]' # 灰色 PS1="$PS1"'at ' # 自定义内容 PS1="$PS1"'\[\033[35m\]' # 粉红色 PS1="$PS1"'\t ' # 时间 PS1="$PS1"'\[\033[33m\]' # 黄色 PS1="$PS1"'\W ' # 当前目录 if test -z "$WINELOADERNOEXEC" then GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)" COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}" COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}" COMPLETION_PATH="$COMPLETION_PATH/share/git/completion" if test -f "$COMPLETION_PATH/git-prompt.sh" then . "$COMPLETION_PATH/git-completion.bash" . "$COMPLETION_PATH/git-prompt.sh" PS1="$PS1"'\[\033[36m\]' # change color to cyan PS1="$PS1"'`__git_ps1`' # bash function fi fi PS1="$PS1"'\[\033[0m\]' # 灰色 PS1="$PS1"'$ ' # 命令提示符 fi MSYS2_PS1="$PS1" # for detection by MSYS2 SDK's bash.basrc 复制代码
上面的这些内容有中文注释的部分是我改过的,这个依据自己的喜好来改,如果看不懂上面的那些符号都是代表的什么意思,可以搜索下 Linux下如何修改终端提示符
就会有很多参考资料。
改完之后:
在 VSCode 中的样子:
善用 alias 强化 Git Bash
alias 是一些命令的别名,可以用来简化命令。在用户根目录下新建 .bash_profile
,然后按如下格式自定义命令,保存后重启 git bash 就可以了。
$ cd ~ $ touch .bash_profile $ vi .bash_profile 复制代码
alias bashalias='code ~/.bash_profile' alias bashcolor='code ~/.minttyrc' alias bashconfig='code /etc/profile.d/git-prompt.sh' alias bashsync='cp ~/.bash_profile ~/.minttyrc ~/.gitconfig /etc/profile.d/git-prompt.sh /e/doing/terminal-sync/ \ && cd /e/doing/terminal-sync \ && git add . && git commit -m update && git push' alias .='cd ~' alias ..='cd ..' alias ...='cd ../..' alias e='exit' alias cls='clear' alias gs='git status' alias gc='git commit -m' alias gp='git push' alias gl='git pull' alias ga='git add .' alias gb='git branch' 复制代码
上面只是列举了部分我用过的 alias,事实上一个 alias 可以包含多条命令,例如上面的 bashsync
,多用它可以极大地提升命令行的使用效率。
使用 Hyper-v
即使 Git Bash 本身已经很强了,但有的时候还是需要用到真实的 Linux 系统。这个时候就可以启动一个 Linux 虚拟机然后再用 git bash 登陆进去就好了。
使用 Hyper-v 能够在 windows 上获得最好的体验,在众多的虚拟机软件中如 virtualbox,vmware,用 Hyaer-v 运行服务器版的 Linux ,内存占用最少,性能也不错。不过,如果要安装桌面版的 Linux 还是选择用 vmware 吧。
在 Hyper-v 上安装 Linux 虚拟机有很多的教程,我找了两篇我当时看过的没有坑的文章,这两篇是安装配置 centos 的,如果是安装别的发行版,步骤也是大同小异的,第二篇文章是用来设置静态 ip 的,这样每次都可以通过这个静态 ip 登录到虚拟机。
安装好了虚拟机之后,接下来就可以用命令控制它了。
powershell 提供了一些命令来操作虚拟机,例如 Get-VM
可以用来获取虚拟机的状态, Start-VM -Name CentOS7
可以用来启动我指定的虚拟机,其中 CentOS7
是我指定的虚拟机的名字。
在 git bash 中要想运行这些命令,只需要在这些命令前面加上 powershell
就可以了,另外还需要管理员权限才可以,直接把 git bash 的属性设置为以管理员启动会更加方便,同时设置属性的时候还可以顺便设置一个全局快捷键来启动 git bash。
powershell 的命令还是不太好敲的,因为区分大小写,可以设置一些 alias 来简化操作:
alias vmssh='ssh root@192.168.xxx.x' alias vmps='powershell Get-VM' alias vmstop='powershell Stop-VM -Name CentOS7' alias vmstart='powershell Start-VM -Name CentOS7' alias vmsave='powershell Save-VM -Name CentOS7' 复制代码
设置了 alias 之后使用起来就非常方便,例如登录虚拟机只需要敲几个字母就行了,这是其它的虚拟机做不到的。当然我还配置过了 ssh ,可以免密登录,centos 也安装了 oh-my-zsh 作为默认 shell。
更多操作 hyper-v 的 powershell 命令可以参考微软的官方文档。
接下来还有一个问题,windows 与 linux 虚拟机之间怎么方便的传输文件呢,很遗憾 hyper-v 没有类似于 vmware 中的共享文件夹那样的功能,不过借助 scp 命令也是很简单的,可以在两个系统里都创建一个固定的文件夹作为同步文件用,然后设置一个 alias 就好了。
alias vmpush='scp -r /e/share/ root@192.168.xx.x:/root/' alias vmpull='scp -r root@v192.168.xx.x:/root/share /e' 复制代码
效果如下:
好了,这样一套在 Windows 上体验绝佳的 Linux 命令行终端基本就打造完成了,好好享用吧
另外这个仓库会同步我最新的终端配置: github.com/xnng/termin…
以上所述就是小编给大家介绍的《在 Windows 上打造体验绝佳的 Linux 终端(非 wsl)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Avaya推出OPEN SIP产品系列,强化云端到终端的通信体验
- VMware EUC CTO:企业的多样化终端设备应当拥有一致性体验
- 终端依赖者福利:终端也能实现翻译功能了
- 程序员必备之终端模拟器,让你的终端世界多一抹“颜色”
- 程序员必备之终端模拟器,让你的终端世界多一抹 “颜色”
- 漫淡终端技术未来
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Art of UNIX Programming
Eric S. Raymond / Addison-Wesley / 2003-10-3 / USD 54.99
Writing better software: 30 years of UNIX development wisdom In this book, five years in the making, the author encapsulates three decades of unwritten, hard-won software engineering wisdom. Raymond b......一起来看看 《The Art of UNIX Programming》 这本书的介绍吧!