Linux初探
作为.net开发者为何要学习Linux
对于普通用户来说,Windows桌面系统都使用的炉火纯青,因为UI化的操作更易于理解,为此微软在普通用户领域占用了极大的范畴,然而在服务器领域Linux明显甩了Windows好几条街,之前一直从事.net开发,所以对Linux的知识感觉可有可无,然而随着技术的不断迭代,.net 也往跨平台发展,另外近年火热的容器部署等策略,以及国内技术的偏向,使得后端开发者了解Linux变得重中之重。
Linux由来
传说是这样的,从前有座山,在山的这边海的那边有一群外国佬,他们为了更有效的使用电脑,搞出了一个叫Unix的系统,基础语言是汇编,但是呢外国人非常注重版权,然后一个教授大佬为了教授学生系统知识又不侵权,闭着眼睛按照原理自己写了一个系统叫Minix用来给学生上课,我的天,牛逼的一塌糊涂。之后又有一个牛逼的大学生,因为当时能用到Unix的机会太难等,急性子的家伙竟然异想天开的准备搞一个自己的Unix,站在巨人的肩膀上,个家伙初步实现了这个小目标,因为当初的放置内核的网站的目录是Linux,这个让.net开发者咬牙切齿的东西就那么诞生了,当然刚出来的时候也就那样,然后因为这个家伙脑子活络,为了Unix的东西可以在上面直接用,就按照的Unix使用的一些标准来搞自己的事,结果可想而知,一发不可收拾,是人都喜欢免费的东西。
Linux vs Windows
Topic | Linux | Windows |
---|---|---|
价格 | 有开源免费的,也有部分Linux分支是收费的 | 收费 |
易用性 | 对于普通用户的学习曲线更为陡峭,想ubuntu等也支持桌面化操作,但总的来说不太理想,另外因为Linux分支的多样性,一般而言还是以命令行操作为主 | 最简单的桌面操作系统之一,更人性化的界面操作 |
可靠性 | Linux非常可靠,安全。注重流程管理以及系统安全性和正常运行时间 | 相对没有Linux稳定,同时鱼和熊掌不能兼得,因为用户友好性导致一些系统安全漏洞和稳定性 |
软件成本 | 开源免费的多 | 虽然有许多免费的Windows程序,实用程序和游戏,但大多数程序都是商业的。 |
安全性 | Linux是一个高度安全的操作系统。虽然存在被攻击的漏洞,但是因为源代码的开放性,使得识别和修复漏洞变得更加容易。 | 因为这是普通小白用户的聚集地,所以成了黑化程序员的攻击的主要目标 |
支持 | Linux上有大量的在线支持,其中包括Computer Hope。 | Microsoft Windows提供了集成和联机帮助系统,并且有数以千计的关于Windows的信息性书籍可用于各种技能水平。 |
用例 | 常见于企业服务器 | 常见于“凡人”和依赖Microsoft软件的商业用户的首选操作系统 |
linux的“剑宗”和“气宗”
免费的东西用的人多,谁都想往里面添加自己的想法,所以各种分支就出现了,洋气点的叫法是“Linux distributions”,目前有很多种,比如CentOS,SuSE,Ubuntu,Red Hat等等,这些差不多也分2大派,剑宗和气宗?当然不是,而是RPM和DPKG。
- RPM - 由Red Hat公司开发,Fedora、CentOS、SUSE等发行版都使用该软件管理器。
- DPKG - 由Debian社区开发,Ubuntu、B2D等发行版都使用该软件管理器
所以在网上找Linux软件的博客分享什么的经常会碰到apt-get或者yum开头的命令就是因为RPM和DPKG的原因
系统存储结构和压缩的关系
压缩文件对于用过电脑的人而言,应该是没有人不知道的,那么压缩的原理到底是什么呢?真相真的只有一个吗,其实压缩需要追溯到系统的文件系统,什么是文件系统?请戳这里。看完后大致就知道原来系统是这样的,原来计算机最底层只有1和0的概念,因为电路,通了就是1,不通就是0,这就是bit,又因为1byte要占8个这样的空间,如果8个只有一个房间是被拎包入住的,那么其他7个房间就是吃灰的,压缩的其中一部分机制就是把这些吃灰的房间也租出去;当然还有另外一种可能就是生意太好了,满客,这时候就可以用到抽象计算了,如果有100个连续的1,那就用“100个1”帮他抽象化,这样又省了N多房间,总之压缩就是各种吝啬各种扣就对了。
权限?CPU?他们有什么联系
CPU大家好像都有了解,但又陌生,吃鸡全开CPU要什么配置的,CPU其实就是处理计算的一个介质,类似于人的大脑,CPU的运算速度那是超级快的,市面上常见的2GHZ,3GHZ就是说这家伙能单位秒运算2或3*10^9次方,因为处理起来炒鸡快,所以就有了实现多用户多任务的基础,因为人它可以让几个用户都感觉用户自己就是上帝,CPU在为他服务,殊不知CPU服务者一大波人,因为有多用户的概念,所以权限这种东西就诞生了,其实Linux有用户和用户组,在shell中输入ls -al 就可以看到一大堆rwx的玩意儿,那就是文件或者文件夹的权限配置了,这所谓的r是read,w是write,e是excute,也有各自对应的数字,依次为4,2,1,其实这种方式的权限设计在普通的业务逻辑中也可以借鉴,权限还有另外的字母,想了解的请自行查找。
结合权限和文件系统的存储规以及hard link的概念,可以对文件夹及文件的权限规则有更明确地了解。
然而对于程序员而言最重要的还是写个"hello world"
在Linux系统中最基础的编程工具就是vim,当然各个不同的Linux分支都有更好的编辑器,然而vim却是一个通用的编辑器,所以这个是必学的,编程的概念多说无用,还得靠上机操作。
这里是菜师傅Linux入门半步学习笔记,里面有一些便利贴记录,方便平时Linux简单编程的操作