熟练掌握Windows环境下的开发
前记:如果不是生活所迫,谁想用Windows作为开发环境呢?
Windows是一个好的操作系统,但绝对不是个最适合开发者的OS。穷学生又没钱上Mac,Linux的各个发行版虽然好用,但是生态又不够完整,一些开发之外的其他需求难以满足,想尝试远程开发环境,却发现延迟高的要死,性能实在拉跨。所以看来看去还是只能将就着使用Windows作为自己的开发环境。
本文则是我这几年来使用Windows作为开发环境的过程对提升使用体验各种摸索后得到的结果。
善于Windows的快捷键
我想多数开发者都更希望减少鼠标的操作,能用键盘解决的都用键盘解决,手能不离开键盘就不离开(典型的就是vim神教),虽然大家都说Windows的种种不是,但是其实Windows系统对快捷键的支持其实还是很优秀的。下面我将尽可能全面的列举一些我平时经常能够用到的快捷键,注意!本部分的快捷键针对于Windows11,Win11以下的版本可能有些许不同,但大体上还是一致的。
Win系快捷键
win + 数字
★★★★☆
打开任务栏对应位置的应用,按住win点击对应数字进行切换,如果同时按住shift会打开新窗口,如果同时按住ctrl + shift会以管理员身份打开新窗口
这个快捷键比较有用,尤其是配合ctrl + shift,如果你把终端放到了底部任务栏,那么就可以快捷地以管理员身份打开终端,否则会一管理员身份打开会有些许麻烦
win + Q
★★☆☆☆
windows自带搜索,
Q是Query的意思
win + E
★★★☆☆
打开快速访问文件夹
用来查找一些最近打开的文件目录或者打开此电脑比较方便,我的一个使用习惯是进入到快速访问文件夹之后用快捷键ctrl + L打开定位到资源导航栏,手动输入”D:/”访问到D盘
win + R
★★★☆☆
打开”窗口”,可以快速访问cmd等
主要用于打开cmd,但是不能通过此方式以管理员身份运行,可选择ctrl + shift + win + 数字以管理员身份打开终端后新建cmd窗口会话,或者通过win + Q查询cmd,再用鼠标以管理员身份打开
R是Run的意思
win + T
★★☆☆☆
windows底栏应用选择(按空格或者回车后可以打开)
我一般更多使用alt + Tab切换已打开窗口,主要是我的底部任务栏的内容一般都会被打开XD
T是Tab的意思
win + A
★★☆☆☆
打开设置栏
偶尔切个Wifi什么的会用到
win + shifit + S
★★★☆☆
微软自带截图工具,截图保存到剪切板
可应急使用,功能较简单,使用上不如QQ、Tim、微信截图方便
win + D
★★★★★
快速切换到桌面
应用场景非常非常多,尤其当你打开了一堆页面之后,快速切到桌面非常的爽
D是Desktop的意思
win + G
★☆☆☆☆
xbox bar 游戏相关
可以用来录屏
G是Game的意思
win + L
★★★☆☆
锁屏
快速锁屏,写完代码要出去走动走动,win + L一下子锁好屏幕感觉用起来比较舒服,但是貌似我用到的场景不多,毕竟我经常懒得锁屏XD,(进入锁屏界面后,按空格或者回车可以触发登录按钮)
L是Lock的意思
win + Z
★★☆☆☆
快速屏幕分页
分页规则很清晰,但是我一般用win + 上下左右 更多一些
win + X
★☆☆☆☆
相当于右键开始按钮
点开之后可以通过上下+空格/回车或者alt+提示的快捷键打开别的功能界面(也可以用来快速以管理员身份打开终端),有用,但是又没有那么有用
win + V
★★★★★
剪切板
离不开的功能,非常非常非常有用
win + B
★★★☆☆
定位到图标栏
直接定位到隐藏栏的箭头,再点击空格或者回车可以打开隐藏栏,也可以通过左右键操作隐藏栏右侧的各个菜单
win + N
★★☆☆☆
打开通知和日期
想看日历可以用
N是Notice的意思
win + M
★★★☆☆
将已打开的所有应用最小化
和win + D的区别是不能再按一次复原,
Win键+Shift+M 将最小化的窗口还原到桌面
在屏幕中同一个窗口打开数量过多时可以使用,再通过alt + tab切换到自己想要打开的窗口
win + ,
★☆☆☆☆
按住时显示桌面
emmmm,使用场景很少
win + .
★★★★☆
v模式中的内容选择栏
找一些特殊字符的时候很好用
浏览器快捷键
多数浏览器通用,尤其edge与chrome
ctrl + W
★★★★★
关闭一个页面
也可以关闭文件目录,必备不解释XD
ctrl + F/G
★★★★★
搜索
按关键词搜索,对于懒加载的数据无效哦
ctrl + R
★★★★★
刷新当前页面
必备不解释
ctrl + T
★★★★★
打开新的空白标签页
可结合ctrl + L进行搜索,即组合为打开新的标签页并搜索/跳转到新的内容
ctrl + U
★★★☆☆
查看页面源代码
偶尔用得到
ctrl + O
★☆☆☆☆
在浏览器中范围本地文件
使用场景较少,偶尔想要快速打开某个文本文件或者pdf看看内容的时候可以用
ctrl + shift + O
★★★★★
打开收藏夹
必备不解释
ctrl + P
★★★☆☆
打印当前界面
需要保存网页内容时可用,可代替长截图
ctrl + H
★★★★★
浏览记录历史
必备不解释
ctrl + D
★★★★★
收藏当前界面
必备不解释
ctrl + J
★★★★★
浏览下载记录
必备不解释
ctrl + L
★★★★★
定位到浏览器URL框
可以进行搜索,URL跳转的功能,对于我来说是浏览器的核心快捷键。在Windows目录里也可以使用ctrl + L快速定位到的URL框
ctrl + K
★★☆☆☆
快速搜索
个人几户不用,完全可由ctrl + L代替
ctrl + N
★★★★★
打开新的窗口,并打开一个空白标签页
当一个浏览器窗口中的标签页过多时使用,打开一个新的浏览器窗口
ctrl + shift + N
★★★★★
打开新的隐私窗口,并打开一个空白标签页
隐私窗口不会附带cookie等内容,必备
ctrl + 数字
★★★★☆
切换到第N个标签页
标签页少的时候可以用,多的时候不是很方便,推荐使用ctrl + Tab替代
ctrl + Tab
★★★★★
切换到右边一个标签页
必备不解释
ctrl + shift + Tab
★★★★★
切换到左边一个标签页
必备不解释
通用快捷键
ctrl + A
全选
ctrl + S
保存
ctrl + Z
撤销
ctrl + X
剪切
ctrl + C
复制
ctrl + V
粘贴
通通不解释
其他常用快捷键
ctrl + shift + N
★★★☆☆
快速创建文件夹
ctrl + shift + 左键
★★★★★
以管理员身份打开应用
★★★★★
ctrl + shift + Esc
快速打开任务管理器
other tips
选择文本时善用shift进行选择,ctrl进行光标快速移动
代码环境分离
因为当代服务端应用绝大多数都是以Linux系统为基础的,所以我们使用Linux作为自己开发环境觉得是更合适的,装双系统切换起来太麻烦,VMWare这类虚拟机又太重,在Windows系统下,我们有个更好的选择,这便是WSL(Windows Subsystem for Linux 适用于Linux的Windows子系统)。简而言之,就是微软官方提供了一个Windows系统下的Linux系统,我们就可以在Windows系统中通过WSL使用Linux的环境。
目前为止,WSL拥有两个版本WSL1和WSL2,其中WSL1其实更像是在Windows系统上封装一层Linux的接口,而WSL2则是依赖于Hyper-V ,你可以理解为WSL2是利用了Windows原生的虚拟机, 支持完整的Linux内核,且比VMWare等专业的虚拟机应用轻量级许多,而且因为拥有完整的Linux内核,在WSL2上可以使用Docker,更加一步方便了我们环境的搭建。
那我们就先开始吧
all in wsl2
首先,确保你的Windows是专业版及以上(不能是学生版、家庭版,否则无法开启WSL,如果非专业版自行搜索升级方法),并且是 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 。
可在系统信息或者其他位置查看,如果不满足请升级系统。
并确定已开启虚拟化。
可在任务管理器中查看,一般都会默认开启
进入控制面板->程序->启用或关闭 windows 功能
开启虚拟机平台、适用于Linux的Windows子系统以及Hyper-V
以管理员权限进入Powershell(可以win+Q搜索Powershell然后再选择以管理员方式打开)
执行以下命令
wsl --install
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
电脑重启之后wsl2应该就已经装好了,我们可以直接在终端里选择打开wsl2,或者在cmd或者powershell中执行
wsl
命令,也会进入wsl的终端。
跟着指引走设置默认用户名和密码就可以使用了。
配合JetBrains产品体验更佳
我们可以把项目的代码放在wsl中,这样我们就可以使用linux环境下进行开发了,可以使用linux的系统函数调用,非常的舒服。
我们可以直接使用JetBrains产品,打开或者新建一个wsl中的项目
在IDE中打开的终端也是默认wsl的终端
于是我们就可以在Linux环境下愉快地coding了~
善用Docker
Docker 是一种工具,用于创建、部署和运行应用程序(通过使用容器)。 容器使开发人员可以将应用与需要的所有部件(库、框架、依赖项等)打包为一个包一起交付。 使用容器可确保此应用的运行与之前相同,而不受任何自定义设置或运行该应用的计算机上先前安装的库的影响(运行应用的计算机可能与用于编写和测试应用代码的计算机不同)。 这使开发人员可以专注于编写代码,而无需操心将运行代码的系统。
Docker 容器与虚拟机类似,但不会创建整个虚拟操作系统。 相反,Docker 允许应用使用与运行它的系统相同的 Linux 内核。 这使得应用包能够仅要求主计算机上尚未安装的部件,从而降低包大小以及提高性能。
利用docker安装软件可以省去很多复杂的配置环境,而且也方便未来数据的迁移等工作,Docker是依赖于Linux系统的Namespace,Cgroup和UnionFS实现的,所以本身是不可以运行在Windows操作系统上的,但是有了wsl2这个好东西,Docker也可以基于wsl2在Windows上运行了。
安装Docker Desktop
- 下载 Docker Desktop 并按照安装说明进行操作。
-
安装后,从 Windows 开始菜单启动 Docker Desktop,然后从任务栏的隐藏图标菜单中选择 Docker 图标。 右键单击该图标以显示 Docker 命令菜单,然后选择“设置”。 Docker Desktop 仪表板图标
- 确保在“设置”>“常规”中选中“使用基于 WSL 2 的引擎”。 Docker Desktop 常规设置
- 通过转到“设置”>“资源”>“WSL 集成”,从要启用 Docker 集成的已安装 WSL 2 发行版中进行选择。 Docker Desktop 资源设置
- 若要确认已安装 Docker,请打开 WSL 发行版(例如 Ubuntu),并通过输入 docker –version 来显示版本和内部版本号
-
通过使用 docker run hello-world 运行简单的内置 Docker 映像,测试安装是否正常工作
安装配置好之后,我们在Powershell和WSL2中都可以使用docker工具
docker与docker-compose
docker-compose是用于定义和运行多容器 Docker 应用程序的工具。通过 docker-compose,您可以使用 .yaml 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 .yaml 文件配置中创建并启动所有服务。
docker-compose是用来运行一组容器服务的,但是也可以用来运行单个容器服务,因为docker-compose部署的容器更具管理上的优势,也是为了方便管理配置信息,我们采用docker-compose来在开发环境中部署一些必要的服务。部署之后就可以通过Docker Desktop直接进行服务容器的管理了
docker-compose安装 MySQL
在你喜欢的地方新建一个文件夹,创建一个docker-compose-mysql.yaml文件,并入以下内容:
version: '3'
services:
mysql:
container_name: mysql8
image: mysql:8.0.20
restart: always
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: root
volumes:
- D:/program/data/mysql/data:/var/lib/mysql
- D:/program/data/mysql/conf:/etc/mysql/conf.d/
- D:/program/data/mysql/logs:/logs
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
请注意,我强烈不推荐在服务器的生产环境下使用Docker部署MySQL这样基础的数据服务,因为这类数据库服务应该建立在更稳定的存储介质上,故不推荐容器部署。但是在个人的开发环境下,使用容器部署可以更便捷和易于管理。
其中volumes将数据挂载到本地磁盘中,可按照需求挂载到指定位置
在此目录下进入powershell,执行以下命令:
docker-compose -f docker-compose-mysql.yaml up -d
因为指定的路径是windows下的路径,所以只能在powershell中执行
也可以不进入当前文件夹,但是-f后面的要写出对应.yaml文件的路径
docker-compose安装 Redis
在你喜欢的地方新建一个文件夹,创建一个docker-compose-redis.yaml文件,并入以下内容:
version: '3'
services:
Redis:
container_name: redis6
image: redis:6.2.7
restart: always
volumes:
- D:/program/data/redis/data:/data
- D:/program/data/redis/conf/redis.conf:/etc/redis/redis.conf
ports:
- 6379:6379
command: redis-server /etc/redis/redis.conf
在此目录下进入powershell,执行以下命令:
docker-compose -f docker-compose-redis.yaml up -d
docker-compose安装 etcd
在你喜欢的地方新建一个文件夹,创建一个docker-compose-etcd.yaml文件,并入以下内容:
version: '3'
services:
Etcd:
container_name: etcd3
image: bitnami/etcd:3.5.6
deploy:
replicas: 1
restart_policy:
condition: on-failure
environment:
- ALLOW_NONE_AUTHENTICATION=yes
privileged: true
volumes:
- D:/program/data/etcd/data:/bitnami/etcd/data
ports:
- 2379:2379
- 2380:2380
在此目录下进入powershell,执行以下命令:
docker-compose -f docker-compose-etcd.yaml up -d
一些提高体验感的软件
clash
某猫型科学上网客户端,个人感觉比v2ray好用很多,而且可以直接代理wsl2的网络,用起来非常方便
这些选项全部都可以打开,配合着写好的代理规则,实现无心智负担的愉快冲浪之旅
utools
非常非常好用的快捷效率工具,我个人已经完全离不开了
你在电脑上想找的每个东西、想做的每件事都可以问一问utools,比如要配置环境变量
又比如想要快速关机
快速打开某个应用软件
快速翻译
各种工具箱
还有很好用的markdown工具等等等
〉 后记:已换mac,诶嘿嘿