linux工程师,RHCE
分类: 系统运维
2021-03-04 13:01:13
作为IT从业人员,越来越感受到操作系统对我们的重要性。和网络一样,Linux也是IT行业的基础技能。做Web前端的朋友也向我请教过网络基础的学习途径,并且最近他也在学习Linux。做后端编程的朋友就更离不开这两个技能了,开发者需要熟练地使用Linux和编写基本的Shell脚本,并且在开发的过程中也要部署和调试Web的服务,比如Apache、Nginx、Tomcat和Web所依赖的数据库等等,但这些都是需要在Linux上操作的。虽然说容器技术的出现已经降低了开发人员配置服务的难度,但为了提升效率,深入学习Linux仍然是非常必要的。
我开始学习Linux是因为同事在堡垒机上开发的小工具,这个工具可以做到遍历所有的骨干网配置,从中提取所需要的信息。当时觉得很新奇,也去请教过同事,得到的答复也很简单,就是通过find命令和grep等命令查询前一天半夜备份好的骨干路由器配置,并且支持正则表达式。他虽然说得简单,但也激起了我很大的兴趣。这些基础命令在大学期间也学习过,趁此机会也开始了一次深入学习。
在学习Linux时,最重要的就是摒弃使用Windows时产生的一些固有观念,第一个就是分盘符这个问题。在Windows电脑中,我们总会把磁盘分成C、D、E等盘符,并且在插入U盘和手机时又会出现其他盘符。但是在Linux中,有一个思想是“一切皆文件”。在Linux里所见到的一切都是文件,就算U盘插入电脑,U盘也是一个文件,如果想读取它,还需要把U盘挂载到一个空目录里才行。在Linux中,有一个根目录,用“/”表示,Linux系统中一切文件都是从这个根开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件。FHS是一种大家约定俗成并制定出的一个标准,比如/boot目录里存放的是设备开机所需要的内核等文件,/dev中存放的是以文件形式存在的设备与接口,比如硬盘、鼠标等,/etc存放的是各个服务的配置文件,当学习各项服务的配置时少不了造访这个目录。/root目录大家也不会陌生,这是root用户的家目录。普通用户的家目录是在/home/下面,正常情况下每个用户都会有自己的家目录。/var目录主要用来存放日志文件等。还有很多常用目录,就不一一列举了。说到目录,不得不提的还有一个路径的概念,路径分为绝对路径和相对路径。绝对路径就是以根目录/开始写起的文件或目录名称,相对路径则是相对于当前位置的写法。从这已经看出来了Linux确实和Windows有很多不一样的地方,这些都是在学习过程中需要注意的。
在最开始接触Linux时,一定会感到特别别扭,并且感觉操作复杂,因为我们已经用惯了Windows图形界面的操作。虽然Linux现在有很多的发行版,并配套了很精美且实用的图形界面,但我们重点学习的仍然是命令行操作系统。当可以熟练使用命令行时,使用效率真的不比图形界面来得慢,尤其是在企业中使用的Linux服务器,运维人员都是通过XShell等ssh工具使用命令行进行远程管理的。其实图形化的工具很多也是调用了脚本才完成的相应工作,和命令行相比,也缺乏了灵活和可控性。命令行窗口也成为Shell,它用来接收并解释我们输入的命令,作为我们和系统内核之间的中介。其中我们最常用的是一种叫Bash的Shell。后面要学习的Shell编程,也是基于Bash的。
俗话说得好,兴趣是最好的老师,如果能带着问题去学习,也一定能提高学习效率。比如有人学习Linux是为了建站,有人是为了提高网络安全技能,有人也可能只是为了学习软路由,让我坚持学下去的原因也是为了避免公司的闲置服务器不能物尽其用。有了目标才能学的更好,为了避免走弯路,选择一个靠谱的书籍也是很有必要的,在这我推荐一本,作者也为了这本书建了站点.书籍可以在网站中免费阅读,并且有配套的软件可以下载。
在Linux上可以做很多事,比如搭建属于自己的网站,可以搭建各种服务,比如邮箱、文件存储系统等。并且在学习中可以了解底层操作系统的工作原理,比如内存和磁盘上的数据是如何读取的,任务调度,驱动设备的管理,文件是怎样管理的。当熟悉Linux后才会发现它才是真正的生产力工具。