继上篇
上次文章讲了为什么程序员要会linux,承蒙厚爱,有不少同学感兴趣。此篇分享我学习linux的辛酸史,并分享我的linux系统环境包,可支持一键导入安装
初识linux
每一个折腾过linux的人都有自己的辛酸史,最典型的莫过于台湾的鸟哥,他的私房菜基础篇光是吐苦水就写了不少篇幅。很佩服他这种能将吐苦水当成乐趣,并整理成文章的能力。自己学会技术并不难,要将学会的知识讲清楚就很难了。
我真正接触linux是在2015年,那时候连上服务器主要是修改一些配置文件,或者调试一些在本地无法重现的bug,一开始我是相当忐忑的。因为不懂,所以畏惧,由于不会用vim,修改文件都是用sftp拖拽文件替换,每次要操作前都要先保存好副本,很怕不一小心把服务器弄炸了...
那时候,linux在我看来,就是一个很难用的操作系统,避而远之。直到看到其他同事在操作linux,才知道原来linux这么酷,通过各种我看不懂的命令组合,极快地定位到问题,解决了bug。而我则是一脸懵逼,呆若木鸡地充当一个吃瓜群众。虽然看不懂,但明白了一件事:要想当一个合格的程序员,linux必须学好,否则一直都只是一个码农,只会写一些没有技术含量的增删改查,跟流水线的工人没什么区别。
当时,想着如果有一天能这么玩转Linux,那应该很酷:
全屏打开黑乎乎的终端,托腮看着花花绿绿的代码,沉吟片刻,用手指敲着桌面,口中念念有词,突然吼一声:fuck! 接着噼里啪啦一通敲敲打打,就将各种难题都搞定...
纠结的历程
刚开始学linux时,主要看鸟哥的私房菜,以及网上各种视频教程,但进展很缓慢,命令学了又忘,而且觉得很枯燥。相当有挫败感,别人能将命令运用得出神入化,完成各种复杂的功能,而我却想象不出这些命令能作用到哪些场景。
后来,终于想明白是怎么回事了,我学linux用的是应试教育的方式在学,漫无目的地看各种教程,记各种命令,还很勤劳地将这些整理成笔记,这种行为上的努力只是在自我麻痹,告诉自己:我在努力了,我付出了时间与精力,如果我还学不会,那不是我的错,而是linux太难了。但真相是:我一直在逃避畏惧linux的事实,在我的认知中,这不是一个可以使用的操作系统,而是一个用来学习的,就好像中学的教科书一样,只要记,划重点,就能学好。这种想法,实在太天真,太幼稚了,服务器线上出问题可不会按照书上说的那样。
学会linux,最简单的方式,就是直接去使用linux,将自己的开发环境都换成linux的,不再去依赖windows的各种一键安装工具。摒弃windows的思维。只有这样,才能体验到linux的强大与优雅。站在岸上再怎么分析别人游泳,如果不下水,永远也学不会。
接下来就是选择用哪个版本的linux,主要是考虑ubuntu和opensuse,两个发行版都试用过,从个人体验来讲,opensuse用着更加舒服,界面也更加好看。只不过将电脑装成linux后,相当不适应,很多windows上的应用都不能安装,特别是公司内部用的企业QQ,OA软件等,此外就是其他的一些不兼容,如中文字体不兼容,折腾了好一阵子,虽然部分问题可能通过其他方式解决,但用得并不顺畅。
也曾考虑换成mac,看了价格,我心仪的型号价格都是在2w左右。看着我现役的用了近两年的4k多的宏碁笔记本,我觉得它还可以再坚持用几年。因为加了固态硬盘,12内存,外接27寸的大屏和机械键盘,使用起来极其流畅。如果换成mac,也就意味着上下班要背着电脑(因为我无法容忍公司电脑与个人电脑的环境不一致), 这对于我这种懒人是很麻烦的事。
因此,我没有用纯粹的Linux系统,是因为我技术渣,也不想耗费精力去折腾各种兼容问题。没有用mac是因为穷且懒。
如果你技术牛或者有钱,那么可以忽略不看了。如果你跟我一样又穷技术又渣又想要一个好用的,可随身携带且方便移植的linux操作系统,那进入咱们的最优选择:虚拟机
爱上linux
现在我用的是通过virtubox安装的centos7,终端模拟器用的是xshell,virtubox和xshell可直接在网上下载安装,virubox是免费的,xshell的家庭学校版本也是免费的。centos7的镜像可以在阿里云下载,此文不讲详细的安装流程,会另写一篇介绍安装。在此分享的是我的一键安装包。因为virtubox是可以支持导入导出整个系统的,所以对我的系统感兴趣的同学可以通过以下链接下载,文件很大,16多G,下载后,这样导入即可:
下载地址
登录密码在下载地址的文件里面
导入的时间比较长,请耐心等待...
那么问题来了,我的系统有什么好呢?为什么要推介给各位?
我想对于很多Linux小白来说,配置系统是很痛苦的事情,即使是按照网上的教程一步步去操作,也经常会出现各种莫名其妙的错误,有些报错可能就导致新手放弃了。如果有一个现成的配置好基础环境的系统供新手使用,可以让他们尽早地接触linux,建立起信心,这点很重要。
以下是我的系统环境基本介绍:
- 网络已配好
虚拟机配置网络这一点就难倒了不少新手,下篇会详细讲如何配置网络
- 使用samba服务实现与windows共享目录
导入系统后,在资源管理器输入:\192.168.56.101\share 即可访问 centos7 的 /home/share 目录。详情在下篇介绍
- 使用oh my zsh
默认的shell是bash, zsh是我用过的最好用的shell, 详情点击我写的 oh-my-zsh,让你的终端从未这么爽过
- tmux
最好用的终端复用器,详情:tmux-让你完全脱离鼠标的终端神器
- mycli
终端下最好用的mysql客户端,详情:mycli--让你惊艳的mysql客户端
- pyenv
python版本管理器, 详情:pyenv,让你轻松切换各种python版本
- 我最喜爱的vim
vim的教程,可以写一系列的文章,虽然我真正使用vim还不到两个月,但现在不管写代码,还是写文章全部都是用vim,放张我的vim图:
使用linux的正确姿势
我刚开始将系统装成opensuse时,很执着地想在opensuse上实现所有功能,于是就各种折腾。
opensuse的界面很漂亮,桌面也挺流畅的,对中文的支持已经相当好。可要想在opensuse上安装QQ, 微信等其他软件,就很难了。虽然可以通过wine来安装,可真的很别扭,而且有各种各样的错误。当我被各种由于强行安装windows软件而出现的问题弄得很焦躁时,陷入了沉思:
为了装这些软件,值得花这么大力气吗?这些时间精力用于写代码不是更好?为什么偏要让Linux去做不适合她的事情呢?既然Linux的强项在于命令行,就不要去折腾她的桌面。同理,既然windows的命令行渣,就不要浪费时间去折腾。这两个系统的设计理念完全不同,所面向的市场也不同。最好的方式就是各取其长,而不是强制把Linux变成windows, 或者将windows变成Linux。 就好比你爱一个人,就不要强制去改造她。
我看有些同学装了我的系统后,还在折腾系统的桌面,这是没有必要的。我的系统最开始装是最小化安装,没有图形界面的,是为了分享出来才加装了图形界面,有图形界面也只是为了模拟运行一些python程序(如写个游戏), 平时的所有操作都是用xshell连接终端。
xshell连接centos7的方式:
打开xshell, alt+O 快捷键,在弹出框选择新建,填写连接信息(这些操作随便网上搜索一把)
默认的xshell界面很杂,我将所有菜单都隐藏,整个界面是这样的:
现在我的所有开发工作都是在虚拟机上,windows用于日常工作,交流,娱乐,两者通过samba进行文件共享,各司其职。完全没必要去折腾虚拟机上的桌面,也没必要去折腾windows的cmd。让两个系统各自发挥其特长才是明智之举。
总结
以上是我的操作系统的概况,如果你对此有兴趣,可直接下载体验。下篇将详细讲在虚拟机安装配置centos7的流程
接下来我会持续写技术类的教程,如python的系列教程,虽然我不是什么大牛或小牛,最多只是一只小猫,现在我也是正在学python的过程,但我相信教就是最好的学,如果我能将我学到的知识表达清楚,就说明我真的掌握了。
若你对我的技术写作计划有兴趣,欢迎关注我的号,一起见证彼此的成长