前言

为什么要迁移到Linux

  1. 首先我个人还是有点软件洁癖,以前是穷酸学生的时候也是用盗版的用户,后来在知乎被洗脑终于有了点版权意识.然后便有了能用开源软件的就用开源,实在不能就选社区版或者免费版。于是开始接触了Linux逐步摆脱盗版的Windows,以及所有的破解类软件相信国内很多用户也是用着盗版的而且并没意识到有什么不妥...讲真这不是装逼而是一个很严肃的问题

  2. 自从微软开放dotnet core,终于可以用上docker等一些好玩的东西,但是docke这一套包括shell脚本等在Windows下并非原生适配,还不如在Linux使用舒服。

  3. 还是因为工作中用了dotnet core,结果把项目部署到Linux下发现有些代码上的东西是有坑的,举个例子获取系统网卡IP的方式或者获取系统的时间有时区问题,或者时间默认值等等各方面的不同。正是这个原因是我不得不下定决心切换到Linux平台下开发以消除这些隐患

使用模式

使用WSL

似乎也是最近两年才推出的东西,目前只可以在Windows 10上才可使用。 优点是不需要安装太多东西,资源占用低,发行版有Ubuntu,Debian,Kali等可以选。直接在应用商店搜索即可。 缺点就是非完全本地化的Linux,部分功能不支持比如原生docker等等,图形界面等,部分命令不可用等等奇怪问题。但可以肯定的是这玩意存在的意义是有的。只要它得到足够完善,配合宇宙IDE visual studio简直无敌

具体开启步骤 1.管理员权限打开powershell

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

  

然后按照提示重启电脑

再打开应用商店搜索Ubuntu安装,或者点击这里直达 任意的命令行下输入bash即可启动WSL 

虚拟机

vmware或者virtual box均可 好处就是完整的Linux环境支持,同时启动多个独立系统,且环境相互独立,玩坏了也不影响物理机。 完全虚拟化没有硬件驱动兼容这方面的烦恼 缺点 资源占用比较高,低配机器玩不起 推荐大多数新手或者想同时跑两个系统的用户使用此种方式

物理机安装

适合的人群,爱好折腾,喜欢原生体验 优点:性能最高,速度杠杠的。折腾一翻收获丰富 缺点:容易翻车,遇到很多问题需要自行查找解决方案,对于debian,使用Google+英语关键字基本能解决问题

关于发行版的选择

linux的发行版有很多redhat系的centos fedora,等等 debian系的debian,ubuntu,mint,deepin。 由于从大二就开始折腾linux桌面系统了 使用过的有Ubuntu,Debian,Ubuntu kylin,Mint,Lubantu,Xubantu,Fedora,Deepin 基本都是debian系的, 主要是桌面环境不同,无非就是unity,gnome3,xfce4,cinamon。

最终体验下来得出以下结论

低配置选择xfce4,比如Xubunu就是默认这个环境 喜欢传统型桌面的选择Cinamon,比如Mint 喜欢稳定+酷炫的使用Gnome3

比起Ubuntu,debian大法好,和ubuntu相比简直稳如狗 不过新手还是老老实实使用ubuntu的unity,然而都2018了,Ubunut终于抛弃超级难用的unity桌面了,现在Ubuntu也是用gnome3, 以我多年是使用经历,最终决定首选是Debian(目前已经在我个人笔记本上跑了4年,稳定到怀疑人生)。新手可以考虑Ubuntu上手后再转,因为个人认为Ubuntu上手容易,但是稳定性完全比不上Debian

安装指南

具体安装就是略了,基本上就是切一个单独的分区,格式化为ext4,再 加一个swap分区,我用的是256g的固态,150g 已经被windows用了,剩下的100留给linux,记住,开发使用的电脑,大,是绝对没错的。

安装完成后可能需要的几件事

换源

apt的源使用中国镜像源是很有必要的,经测试广州和深圳地区使用网易源速度十分理想 假设你已经会使用vi进行操作

su root
vi /etc/apt/sources.list

以下是我的配置可以粘贴使用

#163
deb http://mirrors.163.com/debian/ stretch non-free contrib main
deb http://mirrors.163.com/debian/ stretch-updates non-free contrib maindeb http://mirrors.163.com/debian/ stretch-backports contrib non-free main
# deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
# deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib#------------------------------------------------------------------------------#
#                   OFFICIAL DEBIAN REPOS
#------------------------------------------------------------------------------####### Debian Main Repos
# deb http://ftp.cn.debian.org/debian/ stretch contrib main
# deb-src http://ftp.cn.debian.org/debian/ stretch contrib main###### Debian Update Repos
#deb http://security.debian.org/ stretch/updates contrib main
#deb http://ftp.cn.debian.org/debian/ stretch-proposed-updates contrib main
#deb-src http://security.debian.org/ stretch/updates contrib main# deb http://ftp.de.debian.org/debian-ports/ sid main
deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib
deb http://mirrors.aliyun.com/debian/ stretch-proposed-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch-proposed-updates main non-free contrib

  

特别提示,如果是在基于debian的系统,并且显卡是NVIDIA的,可能出现以下情况

  • 运行良好,但是突然屏幕卡住不动了,只剩下鼠标可以动,键盘也无相应,ctrl+ alt + F*都不能切换,只有强制重启和REISUB可用

  • 通过ssh远程登录无图形界面情况可以正常使用

显然这是图形界面的锅 而且这个问题网上搜索不到解决方案,我是无意中发现的解决方案 其实是需要显卡驱动支持

首选我们检测下

nvidia-detect
Detected NVIDIA GPUs: 02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF108 [GeForce GT 430] [10de:0de1] (rev a1) Your card is supported by the default drivers. It is recommended to install the    nvidia-driver package.

这里提供Debian9的安装 Debian 9 "Stretch"

支持 Geforce 4xx 以及更高的GPUs

首先添加源:

echo 'deb http://httpredir.debian.org/debian stretch-backports main contrib non-free' >> /etc/apt/sources.list

为内核安装合适的Linux headers 假设你的Debian Stretch使用的是4.9 Linux 内核:

apt-get install linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//')

如果你的分支是 stretch-backports则应该这样安装

apt-get install -t stretch-backports linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//')

现在就可以安装包nvidia-driver了

apt-get update
apt-get install -t stretch-backports nvidia-driver

DKMS会帮你的系统编译相应的nvidia模块然后重启你的电脑就可以开始狂欢了,图形驱动完美解决

对于其他的版本安装可以参考debian官方驱动安装指南

docker 权限问题

docker安装过程省略*

如果非管理员权限执行docker的命令会提示:

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

  

  • 方案一
 sudo usermod -a -G docker $USER

  • 方案二
sudo addgroup --system docker
sudo adduser $USER docker
newgrp docker

安装oh my zsh以及配置超级好用的插件

为啥要特别提及这个?不就是一个普通辅助么

因为zsh实在太好用了,有了它,bash简直弱爆了,正所谓磨刀不误砍柴功

不多说直接开撸

安装

sudo apt install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

开启下插件

vim ~/.zshrc

找到plugin,我的是这样的

plugins=(gitadbdebiandjangoemojipyenvsudotmuxvirtualenvvim-interactiovi-modezsh-syntax-highlighting
)

效果图

终端上有git的提示

输命令会有颜色提示对错,需要安装zsh-syntax-highlighting插件

当然还有各种各样的主题,比如我的远程主机使用的是这样的

编辑刚才的配置文件,修改主题为ZSH_THEME="agnoster"然后重启终端即可 觉的强大好用的话就设置为默认的shell

chsh -s /bin/zsh

基础环境说了这么多就不继续了

下面说说和.net相关的。

首先如果安装dotnet core的sdk就看官方介绍即可

官网介绍

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/debian/9/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.listsudo apt-get update
sudo apt-get install dotnet-sdk-2.1

输入dotnet --info验证完美

私有的nuget源怎么配置

我们公司会架设自己的nuget服务器,目前linux下不支持加密存储的配置,所以我都是配置明文密码到配置中

具体可以参考我的另一篇文章在linux下设置私有的nuget

简而言之就是编辑~/.nuget/NuGet/NuGet.Config

如下

<?xml version="1.0" encoding="utf-8"?>
<configuration><packageSources><add key="https://www.nuget.org/api/v2/" value="https://www.nuget.org/api/v2/" /><add key="xxxyyy" value="https://nuget.xxxxxxx.com/nuget" /><add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /></packageSources><packageSourceCredentials><xxxyyy><add key="Username" value="xxx" /><add key="ClearTextPassword" value="xxx" /></xxxyyy></packageSourceCredentials>
</configuration>

现在再执行dotnet restort就完美还原了

dotnet core 开发工具推荐

  1. 主力Jetbrains的Rider

除了内存占用非常大点之外,基本可以胜任VS的工作,智能感知非常棒棒,调试非常方便

如下图 


  1. 小刀Visual Studio Code

现在你看到的这篇文章就是在vscode中打出来的,借助强大的插件。简直是利器

所以我现在写写小的dotnet core项目,Python,或者PHP等等我都会优选选择vscode,强推!


数据库管理工具

我使用的是开源免费跨平台的Dbeaver

支持MySQL, PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access 十分强大

地址


Redis管理工具 可以的话自己编译Redis Desktop Manager

我使用的是开源跨平台的Medis,可以说地十分优雅了

直达github

提示下作者没有打linux包,所以自己编译 编译步骤

git clone https://github.com/luin/medis
npm install
npm run build
npm run electron

然后写个启动脚本

cd your-path
npm run electron

最后写个desktop配置添加到桌面,具体有兴趣的留言再补充吧


Git 图形管理工具

gitkraken

用命令行还没某些人鄙视了

既然这样,那就再来一个终端工具,自己习惯哪个用哪个,哪有这么多话

推荐强大的终端复用tmux

就是一个终端可以切分多个窗口和面板,再也不用开一堆窗口,要用的时候满地找

比如这样

快捷键有点多,但是用熟了会很爽

tmux介绍

IM工具

目前我们公司的工作流是基于谷歌的,基本可以使用Google全家桶,所以没有腾讯qq这种牵绊

但是实在需要的,可以使用web版本

我自己装了个github上一个基于electron的微信


如果需要办公的可能要钉钉也是github上找的

dinbgding也有有人打包好了 


我们公司内部还比较潮的使用了slack来协作

也有slack的客户端

如下

邮件什么的跟不用说

绝地妥妥的

  • 输入法

我推荐谷歌输入法,喜欢国产的可以使用sogou出的搜狗输入法linux

都用过,值的入手,还没广告 官网deb包

  • 顺带提下WPS这个办公套件

linux下也可以使用,还是没广告,不过我看自带的libreoffice也是够我用的了

毕竟开发的,编辑的东西也不多,实在不行我直接丢到Google在线编辑去或者使用石墨文档和腾讯文档

已经很成熟了 WPS linux版本

  • 音乐有网易云音乐linux版本

网易云音乐

其他的chrome和Firefox之类的都有就不说了

最后全家福

其他

基本上要有的也差不多了

  • 其他方面的话补充下就是如果安装xrdp远程到这电脑之类的
  • 开启内网穿透远程连接
  • 使用好看的主题之类的

挖个坑,暂时不想写,有必要再继续写

以上 欢迎各位反馈问题,提出来研究研究

>此文最初发布here2say

>author:Hoyho

>转载请保留此出处

转载于:https://www.cnblogs.com/hoyho/p/9236709.html

写个.net开发者的Linux迁移指南相关推荐

  1. 写给 MySQL 开发者的 TDengine 入门指南

    MySQL 是中国开发者最熟悉的开源数据库产品,在很多开发者心中 MySQL 就是关系数据库的代名词.开发者们对 MySQL 数据库的的特性已经非常熟悉了.你也可以利用 CSDN 的 MySQL 技能 ...

  2. 《写给PHP开发者的Node.js学习指南》一2.2 预定义的PHP变量

    本节书摘来自异步社区<写给PHP开发者的Node.js学习指南>一书中的第2章,第2.1节,作者[美]Daniel Howard,更多章节内容可以访问云栖社区"异步社区" ...

  3. Fedora和Red Hat Enterprise Linux实用指南(第6版)(上、下册)( 入行必读的Linux圣经)

    Fedora和Red Hat Enterprise Linux实用指南(第6版)(上.下册)( 入行必读的Linux圣经) (美)苏贝尔(SobellL,M.G.)著 李洋等译 ISBN 978-7- ...

  4. Fedora和Red Hat Enterprise Linux实用指南(第6版)(上、下册)( 入行必读的Linux圣经)...

    Fedora和Red Hat Enterprise Linux实用指南(第6版)(上.下册)( 入行必读的Linux圣经) (美)苏贝尔(SobellL,M.G.)著 李洋等译 ISBN 978-7- ...

  5. windows字体转移至linux,由 Windows 向 Linux 迁移字体 和 Linux 等宽字体

    1. From Windows Windows下字体库的位置为C:\Windows\fonts,这里面包含所有windows下可用的字体. 2. To Linux linux的字体库是 /usr/sh ...

  6. 为什么要从 Linux 迁移到 BSD

    作为一个操作系统,GNU/Linux 已经变得一团糟了,因为项目的分散性,内核的臃肿,以及商业利益的玩弄.从 GNU/Linux 迁移到 BSD 有几个技术上的原因,但这篇文章不是关于这个的,它只是一 ...

  7. Linux系统调用指南

    Linux系统调用指南 文章是转载,但是我在后面的案例加了不少注解并debug了,如有疑问,留言交流 .(其实我也不懂) 原文链接: blog.packagecloud.io https://zcfy ...

  8. iOS Core Data 数据迁移 指南 144 作者 一缕殇流化隐半边冰霜 关注 2016.05.09 00:35* 字数 4718 阅读 2931评论 17喜欢 327 前言 Core

    iOS Core Data 数据迁移 指南 作者 一缕殇流化隐半边冰霜 关注 2016.05.09 00:35* 字数 4718 阅读 2931评论 17喜欢 327 前言 Core Data是iOS ...

  9. Spring Cloud Alibaba迁移指南(二):零代码替换 Eureka

    为什么80%的码农都做不了架构师?>>>    自 Spring Cloud 官方宣布 Spring Cloud Netflix 进入维护状态后,我们开始制作<Spring C ...

最新文章

  1. 链表问题12——将单链表的每K个节点之间逆序(方法二)
  2. HTML5 Canvas 绘制佛教万字
  3. JavaScript学习笔记——对象知识点
  4. tensorflow 入门经典实例
  5. idea无法启动Tomcat
  6. 做python开发要用多大的内存_Python 在分配内存需要考虑的问题
  7. Windows 网络服务架构系列课程详解(一) ----DHCP服务器的搭建与配置
  8. 第三堂:Java程序流程控制
  9. 常量池、栈、堆的比较
  10. 401 Unauthorized: ERROR Failed to connect to newly launched supervisor. Agen
  11. TCP/IP协议及常见状态码(SYN,FIN,ACK,PSH,RST)
  12. EOF 键盘输入end of file
  13. 安装JDK报错“当前页面的脚本发生错误”解决方案
  14. 内存稳定性测试软件(MemTest)
  15. 当程序员变身为黑客,现役程序员表示:我太难了!
  16. linux安装过程进入终端,怎么安装国产Linux中标麒麟操作系统?安装全过程分享...
  17. 金山快盘 linux,WPS移动版5.5发布 支持金山快盘双向读写
  18. 小米3解锁移动版(2013061)解账号锁刷机包
  19. Android STB 高效调试技巧
  20. 三、逻辑结构与存储结构的区分

热门文章

  1. 尚硅谷es6新特性笔记
  2. 计算机语言不能用中文吗,为什么不能用中文来做编程呢?
  3. 示波器分析IIC波形图
  4. 实操演示 | 如何将示波器波形保存到U盘
  5. hrbust 哈理工oj 1633 word!word!【欧拉路、欧拉回路的有向图判断】
  6. 程序员为什么越老越贬值?!
  7. 视频H5 video最佳实践
  8. Modbus RTU笔记总结
  9. 《Android进阶指北》进阶必备,今日送出8本
  10. WLAN与WiFi各是什么意思有什么区别