作者:张华 发表于:2020-04-18
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明

问题

新入手了一台笔记本电脑,默认安装了win10,用了十几年linux了,也一大堆linux的vps维护的太麻烦,还是就只使用单系统的win10吧。那样,问题来了,如何像平时使用ubuntu的习惯一样使用linux呢?

CLI工具的选择

国内网络太慢,所以从来不在国内的机器上跑程序,都是ssh到国外vps上来办公的, 这样主要是使用CLI命令,很少或几乎没有使用GUI工具的习惯。所以选择一个好的CLI工具是决定能否继续使用windows的关键。

  • 能用wsl吗?wsl将linux系统调用翻译成windows调用, 决定了它仅支持CLI, 当然也可以通过windows上安装xming之类的x server来运行某一些GUI(wsl内运行:export DISPLAY=:0.0),但很多GUI是不支持的如chrome与firefox; 另外,wsl也不支持访问底层硬件所以无法运行python pyaudio之类的程序。wsl的优点它可以通过运行’wsl’快速切换到ubuntu bash;也可以通过’wsl ls’之类的命令实现在windows上直接运行bash命令, 这对我这种只熟悉unix命令不熟悉windows命令的人来说吸引力是很大的。所以wsl要结合着用,但主要就是用它的’wsl ls’之类的方便(后面会讲如何通过alias来使用它)。
  • 能用powershell吗?要运行访问硬件之类的python pyaudio程序只能通过powershell, 不能使用ubuntu wsl shell或者cgwin shell. 使用powershell不支持自定义快捷键让我像使用bash的快捷键习惯一样使用它,这个缺点是对我来说是致命的,所以我不能用它。
  • 能用mabaxterm吗?mabaxterm同时集成了wsl shell, cgwin shell, powershell, 但这些全如上面说的不合我的需求。所以只能将它作为备用,偶尔用用它好用的x server, scp等功能。我很少用GUI,所以这对我来说也属于低概率事件,备用着吧。
  • cmder是我最终选用的工具,它的cmder shell支持使用python pyaudio程序,和bash一样的快捷键使用习惯。也集成了git, ssh这些常用的功能,也能通过定义alias别名方便使用wsl bash命令, 也支持tabs。很好,就是它了,现在需要设置它让它更符合我平时使用linux的习惯。

设置cmder的home dir

D:\>wsl
root@DESKTOP-ENUSKP0:/mnt/d# grep -r 'home pat' /mnt/d/soft/cmder/vendor/init.bat -A 3
:: Set home path
if not defined HOME set "HOME=%USERPROFILE%"
%lib_console% debug_output init.bat "Env Var - HOME=%HOME%"
@cd /d "D:/"

定义/bak软链与ubuntu的路径使用习惯相同

root@DESKTOP-ENUSKP0:/mnt/d# ln -s /mnt/d /bak
root@DESKTOP-ENUSKP0:/mnt/d# ls /bak/soft/cmder/vendor/init.bat
/bak/soft/cmder/vendor/init.bat

定义alias别名在cmder shell更方便直接使用wsl bash命令

D:\>cat soft/cmder/config/user_aliases.cmd |tail -n 20
sshxxx=ssh ubuntu@xxx -b 192.168.8.101
ifconfig=wsl ifconfig
awk=wsl awk
head=wsl head
less=wsl less
ls=wsl ls
man=wsl man
sed=wsl sed
tail=wsl tail
route=wsl route
ping=wsl ping
nslookup=wsl nslookup
dig=wsl dig
tar=wsl tar
cat=wsl cat
tee=wsl tee

设置默认使用cmder shell

注: win+shift+s可以快速截屏

标题在General -> Confirm中去掉警告

设置tab相关的快捷键与chrome vimum

其他 - 让windows支持内录

thinkpad x1 yoga只有一个音频口,喇叭在放音的时候就单工了麦克风不能录音了,能让声音内部从喇叭路由到pyaudio程序处理了再内部路由到麦克风吗?答案是需要安装虚拟路由,同时得支持路由在虚拟设备和物理设备间路由。有款叫voicemeeter的软件就是做这件事的。路由设置如下图:

  • 在1处选内装麦克风,同时将A去掉,A代表可以从麦克风处输入声音
  • 2处不选 ,因为只有一个音频物理设备
  • 3处是选虚拟设备的,A,B两处默认都选
    最右侧输出到扬声器

    需要将声音的输入和输出默认都走虚拟设备

    注意:这样,声音就被内部路由到python pyaudio了, 如果外部也能从物理设备录音的话,必须一直开着voicemeeter, 所以按win+r键输入 shell:startup 进入 C:\Users\ThinkPad\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 目录, 将voicemeeter的链接加到这个目录开机就自动启动了. 不过, 我不是这样做的,voicemeeter菜单中有如下的两项开机自动启动并放入拖盘的设置,如下图。

粘贴到vim全变成一行的问题

如从记事本复制多行内容,然后粘贴到vim却变成了多行,将下图中Ctrl+Shift+V的快捷键设置成Multi lines模式即可。

另一个开机自启的方法

上面介绍了一种开机自启的方法,但对于cmd命令的自启还要写脚本打开shell,再后台运行程序,再关shell。但我的windows shell不熟悉啊。有一种简单的将自己的应用放入服务的方法, 以开机自启frpc为例:

  • 将nssm.exe下载放到和frpc同一级目录
  • 运行:nssm install frpc 会弹出配置服务界面,照着配置就行了
  • 到服务目录设置自动启动它。

安装clink增强cmder的像bash completion一样的命令提示

安装类似于proxychain的proxycap

安装winaera tweaker设置系统代替设置注册表

使用qnap nas

qnap nas设置了nfs server, wsl中由于没nfs内核模块,无法通过autofs设置nfs.
所以直接在浏览器上通过\就可以访问nas了, 或者安装qfinder pro

其他 - 键盘丢失按键的问题

感觉键盘总是丢失按键,似乎是在cmder时发生(not 100% sure), however, 搜到了一个相关的bug - https://github.com/cmderdev/cmder/issues/258
后来安装双系统后切换到ubuntu后不再丢失按键,所以不是键盘的问题,就是cmder的bug, 见:https://zhhuabj.blog.csdn.net/article/details/82466639

20220610更新 - 远程解决两例windows问题

昨天媳妇打电话说她同事的电脑键盘不能用但鼠标能用,我平时也很少很少用windows系统,只能远程试着帮她解决.

  • 她说她的键盘是圆口,哦,那是PS2键盘,那么古老,我的第一反应就是会不会古董与新的win10存在不兼容.于是要她换个usb键盘试试
  • 她说usb键盘也不行,换蓝牙键盘也不行
  • 于是要她重启一下机器,她重启了好几次,说也是不行
  • 于是昨天中午,我就带了一个ubuntu启用盘,想过去确认一下是win10的问题,还是电脑硬件的问题.结果到她办公室的时候,还什么也没开始做,那键盘自然就好了.我就告诉她那可能是PS2古董键盘的问题,让她同事换个USB键盘继续用.
  • 今天,她又打电话说,USB键盘也又出同样问题了
  • 于是,搜索微软官方,发现: https://answers.microsoft.com/zh-hans/windows/forum/all/win10%E7%B3%BB%E7%BB%9F%E6%AF%8F%E6%AC%A1%E5%BC%80/cfd83767-04c4-4e2d-b74b-66f80f21ead3
  • 要她以管理员用户打开cmd运行下列命令后问题就解决了,期间,因为键盘没法用无法输入字符,要求她微信用鼠标拷贝,但粘贴之后没有键盘按回车,要求她使用电脑的屏幕键盘搞定.
reg add HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318} /v UpperFilters /t reg_multi_sz /d kbdclass /f

于是这个问题搞定.上个月,她也打电话问了另一个问题,说chrome无故闪退,我让要换个浏览器,她说她换edge了问题依旧,我说edge用的内核也是chrome内核,也许你应该换个firefox浏览器,结果问题就解决了.至于为什么chrome会闪退那就不得而知了,她的win10系统是更新到最新版的,chrome也是最新版的,但windows不比linux可以轻松获取chrome的core dump来分析一下.我对windows实在不熟不清楚如何获取core dump, 先要她用firefox作为workaround了.

编码问题

可在"region setting"设置中将默认编码从gb2312改成utf-8.
当然即使win10仍然使用gb2312,python程序也可以仍然使用utf-8编码:

  • 添加:# coding=utf-8
  • 该程序如果还要再打开其它可能有中文的文件的话也要处理utf-8: open(‘columns.txt’, mode=‘r’, encoding=‘utf-8’)
    这样utf-8的python程序也能跑在gb2312的windows上了,但windows cmd想要支持utf-8的话,可运行:chcp 65001,或修改注册表,见:https://blog.csdn.net/ml863606/article/details/86007579

用ubuntu的使用习惯使用windows (by quqi99)相关推荐

  1. java编写Linux文件共享,ubuntu下用samba实现windows与linux文件共享

    ubuntu下用samba实现windows与linux文件共享 首先要安装samba sudo apt-get install samba sudo apt-get install smbfs 1. ...

  2. linux美化windows,Ubuntu Skin Pack:把Windows 7美化成Ubuntu界面

    Ubuntu漂亮的界面受到很多使用者的称赞.所以,这款典雅的仿 Ubuntu 主题也就很值得你一试了.当然,想真正体验Ubuntu的系统界面最好的方法莫非是安装Ubuntu系统.但是由于各种原因,许多 ...

  3. Ubuntu虚拟机无法ping通windows解决办法 Ubuntu入门之九

    rlk@ubuntu:~$ ping 192.168.119.1 // 无法ping通windows10 PING 192.168.119.1 (192.168.119.1) 56(84) bytes ...

  4. ubuntu 虚拟机设置全局代理 windows 上网环境

    ubuntu 虚拟机设置全局代理 windows 上网环境 背景 准备工作 STEP 1:启用 windows 上代理的"允许来自局域网连接" STEP 2:设置虚拟机为桥接模式 ...

  5. 新的服务器装Ubuntu系统(如何在windows下制作启动盘以及如何安装Ubuntu系统)

    1.准备一块4GB以上的空U盘 2.https://rufus.ie/  下载rufus 到windows电脑 3. 插入U盘,打开 rufus 软件 如是操作即可. 4.https://www.ub ...

  6. 开机出现grub rescue无法进入系统 恢复ubuntu系统下grub引导 windows xp和ubuntu9.10双系统引导程序的修复

    提示:这个方法不管你是多系统然后手动格式化其中一个系统,还是因为重装某一个系统均可使用,本人花了几近8个小时的时间摸索终于解决了本系统grub引导问题. 现象:本人是有一个windows 7 ,Ubu ...

  7. VMware虚拟机Ubuntu系统与物理机Windows 7系统共享文件夹

    我的VMware虚拟机里装的系统是Ubuntu,物理主机里安装的是Windows 7,如何让虚拟机里的Ubuntu系统与主机的Win 7共享同一个文件夹呢?这样这两个系统之间就不用通过网络或者U盘等方 ...

  8. 用习惯了windows系统要怎样去认识linux系统(一)

    一.前言 对于普通用户来说99%都使用的是windows操作系统,即便那些会使用linux系统的技术员来说,他们PC上安装的也是windows系统.linux系统只是用于服务器市场,可以说现在服务器市 ...

  9. Ubuntu安装Samba实现跟windows文件共享

    From: http://js8.in/526.html 为了开发项目的方便,要实现Ubuntu跟windows文件共享,需要在Ubuntu下搭建samba服务器,下面来说说Ubuntu下安装.配置S ...

最新文章

  1. html5 静态网页 线程,HTML5 Web Workers之网站也能多线程的实现
  2. python【蓝桥杯vip练习题库】BASIC-3字母图形
  3. java 银行项目对于金额的面试题_2019年面试题小结
  4. ubuntu18.10安装linuxqq2.0
  5. 应用传送网络(ADN):率先架起“东数西算”的“高速公路”
  6. “一键删除中国App”应用海外走红,下载量破500万!谷歌:我先把你删除了
  7. C/C++[算法入门]续
  8. 193.有效电话号码
  9. 【信息安全导论】HIT2022春季学期《信息安全导论》复习概要
  10. 视频教程-Windows Server 2016 身份管理 (MCSA 认证 70-742)-微软认证
  11. HTTP认证与https简介
  12. Hivesql常用优化技巧
  13. c程序设计语言cpp,c++中后缀名.c 与.cpp的区别?
  14. UE4遇到的各种奇葩问题
  15. CSAPP第四章家庭作业参考答案
  16. 服务器信号切换机,KH1508Ai-远程KVM多电脑切换器-南京明高——MOXA工业互联网全系列产品销售服务平台 工业交换机,串口服务器,工业无线,嵌入式计算机,现场总线网关,接口转换器...
  17. 主进程、子进程和守护进程
  18. 数据库安装时需要更新以前的Visual Studio 2010实例状态失败-----亲测可行
  19. 个人计算机使用的标准键盘,电脑键盘的基本操作规范 -电脑资料
  20. 创业者面对困难-不轻言放弃

热门文章

  1. python对numpy数组求导_NumPy数组计算——python
  2. 百度地图API基础操作--百度鹰眼篇
  3. 关于谷歌浏览器74以上无法自动加载flash问题的解决
  4. 如何快速通过对方微信好友验证!
  5. 流程控制语句break continu return 及方法(函数)
  6. 斧子演示(AxeSlide):新时期,新用法
  7. 在centos7中基于nginx-rtmp模块的mp4播放
  8. Fitbit Flex 智能手环佩戴心得 主要说说过敏
  9. python爬实时数据_如何用python爬取实时更新的动态数据?
  10. python股票量化交易(1)---K线图、均线与成交量绘制