想学Linux,该从哪儿入手?有什么推荐的书籍呢?
其实我觉得你的问题很泛,因为想学linux用来干什么,决定你要怎么学。如果紧紧是用来像window系统一样的话,那直接装一个发行版的就可以,慢慢的入手。如果想学linux运维,那可能有的学习路线就又不一样了,如果是用来做嵌入式开发,底层移植,那可能方向也不一样了,等等。我觉得你要明确你是用来干什么,走那一方面。
linux相关的资料网上很多,学起来比较简单。建议按照如下方法:
安装linux环境,虚拟机或者电脑安装linux系统都可以(ubuntu16或者centos7)
学习linux基础命令,cd,cp,ls,等等书籍推荐(linux就应该这么学,开源免费的)
学习搭建企业级linux环境,搭建vpn,搭建邮件服务器,ftp服务器等等。(鸟叔linux私房菜)
学习linux原理,深入了解linux的系统(linux内核的艺术等。)
自学linux应该学哪些内容呢?
您好,更高兴为您回答问题。
LINUX,我学习了4年,目前我的职位是一名数据库运维工程师,对于linux的学习,我想我这个从网络毕业,变成linux运维方面的工作者蛮有心得。
基础概念
linux和苹果系统,微软系统一样,承载应用服务的底层架构,我们要学习linux,首先一定要了解它的概念。
Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。
linux有很多分支,redhat,debian等,根据不同的用户需求,被包装成不同的系统,可基础还是linux或者说unix。
操作命令
linux使我感兴趣,很重要的原因是命令,敲键盘可不是程序员的特权。
但使用linux,一定要明白命令的意义,否则,会造成无法弥补的后果。
linux主要的命令是文件系统,操作系统,程序管理相关,其他命令都是由其他搭载在上面的服务器提供。
开源程序
自学linux,最好是结合一个项目去学,比如docker,比如heartbert。
应用程序部署,会让你发现很多基本原理以及命令概念,其实linux并不复杂,只要用心,我们专注发现问题,就可以很快的切入其中。
开源程序是学习linux的辅助工具,我们在研究过程遇到的问题便是我们学习的内容,怎么去克服报错,怎么去分析报错,怎么去处理报错,层层揭开linux的秘密。
结语
兴趣决定我们学习的高度,如果你是因为工作或者其他需求要自学,一定要系统的学习,不要出现操作失误。
但如果你是因为兴趣学习,我想你回答发现linux十分有趣。
linux很杂的,所以初期阶段你不用看学习什么内容,基础的都学就行了,这里可以看中国人写的基础书籍,上手快,外国翻译过来的反正我是看的很吃力,不太适合初级的人去看
基本知道linux之后,一些安装、权限等等操作后,就进阶,比如搭建LAMP、LNMP、DNS等等软件和服务,这些也要懂,这部分需要教程,看书超级缓慢,教程为主、练习为辅、这时候可以看国外大神写的书了,到这部分你就可以开始工作了,基本上企业也不会划分的很细,当然想走的更远,下面就是深度学习了,对了,python了解基本即可,但shell脚本一定要会,不说精通,至少要熟悉,一天2到5个shell脚本练习就够了,也不用太多精力花在这
当你学的差不多,才是决定往哪个方向了,比如云服务器、自动化运维、linux安全之类的方向,但都离不开开发,所以这时候你就要精通python语言了
自动化运维应该是趋势,云服务器也是热门,一门精通,其它也要熟悉,你才能走的远
还有个很重要的,原理一定要懂,每一个服务的运行原理比会安装更重要,所以死记硬背也要背下来。网络这块不是服务器运维的强项,但基本的ip/tcp协议你需要懂,会抓包、会基本分析就可以了,往后有精力了再深度学习
新手学习linux方向大概如下:
1.先学习linux的基本命令,比如:cd,ls,cp,mv,mkdir,rm,cat,touch增删改查等等命令。
2.熟悉基本的操作后学习linux相关文件权限命令,比如:useradd,groupadd,passwd,chmod等等命令。
3.然后在学习更进阶一点的命令,比如:进程管理,磁盘管理,网络管理,文件管理等等相关的命令。
4.最后再学习下linux的软件安装卸载和shell脚本等等吧!然后多实际操作下搭建各种软件环境,基本就可以出师了。
C语言基础要打好,操作系统,还有计算机网络,可以看看linux的书籍,里面的基本都是介绍的了。linux系统比较多,可以下载安装红帽子,ubuntu等等,可以自己找找视频看看。涉及的后面开发就是嵌入式了,还有操作系统
程序员这种职业理论上完全可以在家写程序,开会视频会议,为什么还要每天挤地铁去公司?
曾经有一个人用两周时间开发了一个编程语言,但是要将这个软件产品化,花了公司六年时间,动员上百人,耗资数亿元才实现。
求伯君单马匹马开发了DOS下的WPS,后来金山公司想移植到windows和云端,从公司搜罗了2500人,花了几年时间才完成移植。
到了大兵团作战时,面对面交流比视频会议更有效率。
因为人与人交流,语言只占7%,语气38%,肢体语言55%。
国外出版了很多小册子,告诉你如何通过肢体语言判断对方是否说谎。
现有的视频会议只会显示头像,不会显示人的手脚等肢体动作,让人失去至少一半的判断依据。
未来VR技术可能会显示整个人体的肢体语言,但是会由于涉及隐私而不会普及。
据说早在20世纪70年代,可视电话技术就已经很成熟了,但是就是没有普及,因为人们担心隐私,人们可能在洗澡,上WC时使用电话,不希望别人通过可视电话看到自己光屁股。
在大兵团软件开发中,会议占一半以上时间,程序员每天写代码的时间不到5%。
开发前,需要组织各种交流会,统一思想,讨论软件建模等等。
开发后需要review,讨论软件bug产生的原因,如何举一反三。
作为个体,总是想推过揽功,把bug产生的原因推给别人,都在扯皮。
会议的组织者需要通过细枝末节发现谁在说谎,谁才是问题真正的根源,这个高难度操作很难通过视频实现。
所以,大型软件开发需要员工上班面对面交流。交流是程序员的主要工作,写代码只用不到5%的时间。所以大型软件开发中,很多程序员一天可能只写25行代码,一年才写7000行代码。
而小型软件开发,一个程序员可能一天就写几百行代码。
新型冠状病毒爆发后,为响应复工所需,远程办公成了很多企业的第一选择。不仅仅是应对疫情,从长远来看,远程办公也有着一定的益处,
根据StackOverFlow近期做的调研,只有12%的开发者是远程办公的。远程办公还有很远的路要走。
远程办公需要面临不少的困难和挑战。你只有克服了困难才能够高效的完成远程办公的工作。下面介绍一下远程办公需要面临哪些挑战?
1、办公时间的管理
远程办公最明显的一个挑战就是时间的管理。
在家办公的时候,你可能会面临在办公室不会遇到的干扰:逛个淘宝、刷微博、看新闻等等因素都会默默的消耗你的办公时间。当你意识到这些因素之前,也许你的一整天就这样过去了,毫无工作成效。
解决时间管理这个问题需要有缜密的时间管理计划。你需要制定每周计划、日计划,工作计划越有规律,规划得当。然后加上严肃、专注的工作态度。坚持按照计划执行,时间久了你就会形成好的远程办公习惯。这样你就能非常高效的完成自己的任务。
2、自律、自我激励
如果在在家办公无法做到自律和自控,你也许需要慎重考虑自己是否适合远程在家办公。和办公室办公的区别在于没有领导的监督。你肩负着自我激励和自律的责任,当所有的激励都不管用的时候,“自律”会让你继续眼下的工作。
3、存在孤单感
这个可以是优点无人打扰你工作,你能更加专注去完成自己的工作。也是一个挑战因为你一个人在家工作,没有办公室的那种氛围,持续工作后,会有一份寂静与安宁让人焦躁不安。这时候的你很容易被外面的风吹草动所影响。从而影响你的工作。这个和上学很相似。当你在教室里面背书,因为大家都是背书,你也会被这种氛围所感染,沉浸在背书的乐趣当中,如果你一个人在一个屋子里面自己背书,很有可能你是背不下去的。
解决孤单感的方式可以走出去的方式。比如每周去几次健身房、参加相关的社交活动、或者换个场景比如去咖啡厅工作。这样你的孤独感可能会随之慢慢淡化消失。
自从今年的新冠疫情爆发以来,远程办公成了今年的热点词汇。人们开始思考传统办公模式的缺点。随着远程会议、远程视频、云端办公协作等技术的发展,远程办公所需要的基础设施似乎都已经成熟。那问题来了,例如像程序员这种很少与客户打交道的职业是否可以进行远程办公呢?答案是:理论上可行,但实际情况不好实行。主要有以下几点原因。
1、软件开发重点在于沟通
程序员的工作不止是Codeing,有很大一部分工作是在与内部人员沟通。比如今天我们要做一个需求,那我们需要跟产品经理先沟通,需要清楚这个需求所要实现的功能。这个就是需求评审,而在这个评审的环节,可能面对面的沟通效率要比远程沟通的效率高很多,通过远程会议沟通,程序员可能并不能完全清楚需求所要实现的功能,这导致做出来的需求可能事倍功半。同时,程序员相互之间以及与测试工程师、其它岗位工程师(前后端工程师之间、后端与大数据工程师等等)也需要频繁的沟通。在功能实现上,每个程序员可能都有自己的一套实现逻辑,而在遇到这种冲突的时候,我们可能就需要进行沟通选择一个最优的方案。而在这个过程中,很明显,面对面沟通的效率要高很多。
2、缺乏相对成熟的管理模式
程序员相对懒散,而且每个人的责任心并不一样。如果进行远程办公,缺乏了这种集体的管理模式。在遇到需要立刻解决的Bug或者线上问题的时候,程序员不一定可以在第一时间解决问题。没有了集体的约束,程序员可能写一会代码然后就去睡觉或者干别的事情去了。所以,目前很多公司并未形成这种成熟的远程管理员工的模式。很多工作还是完全靠员工的主动性去完成。而那些主动性差的员工,在这种远程办公模式下,工作效率可能大大的降低。
最后
远程办公是趋势,虽然在中国并不成熟,但是随着相关技术的成熟和人们思维的转变,相信未来完全可以实现在家办公。远程办公是社会发展趋势的自然选择。

