Linux学会了对找it类工作当然是有帮助的。

对于一个不了解运维究竟是做什么的同学,可能或多或少会对运维的工作内容打上错误的标签,认为运维就是每天很苦逼的在机房工作,甚至可能干着一些搬服务器、上架服务器、整理网线、打标签、调试网络设备等一系列环节。

这么一听,肯定显得地位很低端。可在实际工作中,Linux其实是至关重要的。学习 Linux 更多的是向系统层面、运维工程师方向发展,它的岗位主要包括:云计算系统工程师、大数据运维工程师、运维开发工程师、数据库运维工程师等等,都是 Linux 运维工程师的进阶。

一、初级运维工程师

互联网时代,人人都离不开网络。作为一名程序员来说,最起码不需要你过多的对网络有深入的研究,对于一些最基本的网络知识是必须要有的。在找运维岗位的时候,网络部分也是必不可少的,简单了梳理了一下:

1.网络技术与应用

  • 计算机网络基础:基本概念、网络功能和分类、网络发展史、网络协议和标准的区别、网络常见设备及其功能、网络拓扑结构、常用的数值转换方法;
  • 网络参考模型:OSI 和 TCP/IP 分层模型的结构、OSI 各层功能、数据传输过程、设备与各层之间的关系;
  • 网络传输介质:制作双绞线跳线、打接信息模块、连接各种网络设备、光纤的特点分类和应用、测试网络连通性;
  • 网络布线:综合布线常识与材料、布设网络线缆、网络布线的测试与验收、布线设计图纸;
  • 交换机 / 路由器的基本原理与配置:(常见的品牌:Cisco、HUAWEI、H3C等)、MAC 地址理论、以太网帧结构、交换机转发原理及基本配置等;
  • IP 地址理论及应用:IP 地址和子网掩码概念及分类、配置 IP 地址、实现路由器间互通;
  • 网络层协议及应用:数据包格式、ARP/ICMP 协议原理;
  • 静态路由:路由的基本原理、配置静态/默认路由、排查路由的故障问题;
  • 网络接入:网络接入方式、配置宽带路由器及处理常见故障;
  • WLAN 的部署与安全:无线 AP、WLAN 基本常识;
  • 设备管理:硬件组成、路由器的启动过程、恢复设备密码、交换机的 IOS 备份、恢复、升级方法、路由器交换机的产品体系
  • ARP 攻击与欺骗:防御攻击及欺骗、ARP 防火墙、攻击和欺骗报文、抓包软件;
  • 虚拟局域网 VLAN:VLAN 原理、TRUNK 原理、配置 VLAN 和 TRUNK
  • 单臂路由和 VTP:单臂路由的通信过程、配置单臂路由和 VTP;

2.Linux 基础

  • 系统安装及服务控制:操作系统的安装方法、Linux 系统引导过程、控制 Linux 系统中的服务、优化 Linux 的启动任务;
  • 目录和文件管理:常见的基本命令、查看文件内容方法、备份与恢复文档方法、VIM 文本编辑器的方法;
  • 安装及管理程序:Linux 命令与应用程序的关系、Linux 应用程序的组成、软件包的封装类型、RPM 包管理工具(概述、格式、查看、安装、升级、卸载、维护等)、源码编译安装程序(编译安装的基本过程:解包、配置、安装、使用);
  • 账号和权限管理:管理用户账号和组账号(用户账号、组账号、UID 和 GID 号)、用户账号/组账号管理(用户账号/组账号文件、添加 / 删除 / 修改用户账号)、查询账号、查看目录和文件的属性、设置目录和文件的权限、设置目录和文件的归属;
  • 磁盘和文件系统管理:检查并确认新硬盘、规划硬盘分区、创建 / 挂载 / 卸载 文件系统、设置文件系统的自动挂载、查看磁盘使用情况、LVM 逻辑卷管理、LVM 管理命令、LVM 应用、设置磁盘配额(作用范围、限制对象、限制方法等)、磁盘配额管理;
  • 进程和计划任务管理:查看和控制进程、crontab 周期性任务设置;
  • 分析和排查系统故障:分析日志文件、排除系统启动类故障、排除文件系统类故障;
  • Linux 基础网络设置:查看并测试网络、设置网络地址参数;

二、中级运维工程师

  • 基本服务:DHCP(动态配置主机地址服务)、Samba(文件共享服务)FTP(文件传输服务)、DNS(域名解析服务)
  • Web(网站服务):LAMP、LNMP、TomCat
  • 数据库:MYSQL、Oracle、Redis、SQL Server、MongoDB 等;
  • Shell 脚本:if、for、while、case 语句、文本处理三剑客:grep、sed、awk 等;
  • 系统安全及应用:账号安全控制、系统引导及登录控制、弱口令检测及端口扫描;
  • 远程访问及控制:SSH 远程管理、访问控制;
  • 防火墙:表、链结构、数据包过滤的匹配流程、编写防火墙规则、SNAT / DNAT 策略及应用、规则的导出 / 导入、防火墙脚本;
  • YUM 仓库:部署 YUM 软件仓库、YUM 工具管理软件包;
  • PXE + Kickstart:远程安装服务 + 无人值守安装;
  • Rsync + inotify:远程同步备份工具 + 实时同步;

三、高级运维工程师

  • Web 缓存代理:Squid 代理(传统代理、透明代理、ACL 访问控制)
  • 虚拟化技术:KVM + OpenStack
  • 集群:LVS + Keepalived(负载均衡 + 双机热备)、Haproxy + Nginx 搭建 Web 集群;
  • MySQL 主从复制与读写分离
  • 运维监控软件:Cacti、Nagios、Zabbix(主流)、Prometheus、Grafana
  • 自动化:Ansible、SaltStack、Jenkins、Puppet
  • 容器技术:Docker、Kubernetes
  • 日志分析系统:ELK
  • 编程语言:Shell、Python 等
  • 性能优化:是最大化提升服务承载量,也是比较难的,可从硬件层、操作系统层、软件层和架构层维度展开思考进行优化

四、资深方向

如果你想要往更高技术领域发展的话,同时也会有更多的选择。比如

  • 运维开发方向:主要是 Python 运维开发;
  • 自动化运维方向:主要是在原来的自动化运维领域进行深入研究;
  • 云计算方向:主要是针对现在比较流行的容器技术:Docker、Kubernetes 以及虚拟化技术等;
  • 架构师方向:架构师的话,需要覆盖的技术领域就比较广了,而且需要的工作经验在 5 年工作以上;
  • 大数据方向:主要针对开源大数据系统需要有深入的研究;

相信通过这四大阶段的大致介绍,一定让同学对运维有了更近一步的了解,和自身职业发展的定位了吧?如果有对Linux感兴趣的同学,也欢迎私信我,我可以把以上介绍的知识模块学习视频发给大家。学习是一个很漫长的过程,让我们一起加油吧!

很高兴你这个问题

Linux运维是一个融合多学科的综合性技术岗位(网络、系统、开发、安全、应用架构、存储等)这要根据你个人想做什么样工作,然后着重学习linux的哪部分。

首先先介绍下学linux能找什么工作?

按个人经验介绍下常见的linux有哪些领域,并对应到什么工作。

一、linux应用非常广泛

这部分严格来说不能算是linux,只是跑在linux上的应用,大点的公司linux,windows都有版本,一般特质linux独有的软件或者更多在linux平台上的。比如web,网络,IT等。职业包括 网管,运维,网站前后台,企业IT部门等。

需要熟练使用linux各种配置和应用搭建和部署。大多是应用配置类的工种,后台开发会有部分编程内容但一般是通用语言。相对来说,linux的基础不需要太多,更多的是应用方面的知识。大部分互联网公司和传统公司IT化中都需要这类人。

二,学linux定制。

这部分涉及linux版本的用户包较多,内核会有一些涉及。主要各种商业linux的订制,服务等。比如redhat之类,不少是外国公司,国内大多招现场支持等。还有一类是windriver之类的系统软件订制。会涉及到开发工具,编译器等。对linux的原理和机制要求比较清楚,有较丰富的应用经验。还有一类是具体的产品开发公司,虽然会采用一些上面提到的系统软件公司的产品但本身需要招一些懂这个的。比如中兴,华为之类的。这部分需要写大量代码,大多是c或者java。

三、学linux内核开发。

这部分主要是linux内核驱动的开发。几乎全部是编程工作。主要是芯片公司,以及使用芯片的产品开发公司。前者如intel,marvell,后者如中兴华为。

四、学习了解下android衍生品。

因为android包括慢慢火爆的tizen都用的linux内核,所以理由同3。所以手机芯片公司和手机开发公司也是linux开发者的雇主之一。比如高通,TI等.

Linux学会了好找工作吗?-编程之家
Linux学会了好找工作吗?-编程之家
Linux学会了好找工作吗?-编程之家

Linux 基础好的话,可以考虑往运维方面发展。